Modern electronic applications and communication systems generally rely on the transmission of digital data from a sender to a receiver. Due to capacity and quality limitations in these networks and communication systems, a sender may need to limit the bandwidth being used in transmitting such digital data to a receiver in order to prevent the data from being damaged or lost. A sender may also need to limit the bandwidth being used in order to allow other senders to send data on the same networks and communication systems.
From time to time, however, it may be desirable for a sender to increase the bandwidth being used. For example, during a video conference, the available bandwidth between the sender and receiver may fluctuate depending on the usage of the network or due to a temporal variation of the network capacity. Once the bandwidth in use is reduced, the sender may want to return to the original or optimal bandwidth after a certain period of time. However, in networks commonly used today, it is not possible to know whether there has been an increase in available bandwidth and whether any such increase can be used by the application from a certain point in time on.
Because data being transmitted on a network or communication system may already be using all of the available bandwidth, increasing the bandwidth of a data transmission may result in lost data and a drop in the Quality of Experience enjoyed by the user of the session.